// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'package:expect/async_helper.dart';
import 'package:expect/expect.dart';
import 'dart:async';

main() {
  var controller;
  controller = new StreamController(
    onListen: () {
      controller.add(499);
      controller.close();
    },
  );
  asyncStart();
  controller.stream
      .map((e) {
        throw "error";
      })
      .listen(
        (_) {
          throw "should never be reached";
        },
        onError: (e, st) {
          Expect.equals("error", e);
          Expect.isNotNull(st);
        },
        onDone: () {
          asyncEnd();
        },
      );
}
